【Filecoin】如何扩展 Filecoin 网络 - 关于星际共识的一个简单介绍
Filecoin的虚拟机上线之后,与预料的一样,燃料费上涨了。如果要支持一个繁荣的生态,必须要使Filecoin能够扩展,这个在设计Filecoin虚拟机之初就开始了,解决方案就是 IPC - 星际共识。
关于IPC(InterPlanetary Consensus,星际共识)的研究早在一年多前就开始了。这个研究由协议实验室的共识实验室(Consensus Lab)负责。共识实验室由Marko Vukolic 领导,汇聚了一群共识领域的专家。他曾在IBM Research Zurich工作,担任首席研究员(Principal Research Staff Member),并持续从事分布式系统的研究,特别是高效率的共识机制。
什么是IPC
IPC是 InterPlanetary Consensus。一看这个名字,就知道这个与协议实验室有关,应为这个 IP 与 IPFS的 IP是一个意思。其实,IPC之前的名字是HC(Hierarchical Consensus),故名思议,就是层次化的共识,简单地说,就是可以从一个网络衍生出多个子网,子网还能衍生出子网的具有层次感的一个网络系统。这个系统是不是和一般的二层扩展、侧链都不太一样。形象地说,这个可以搞子网套娃,多级扩展。
IPC 的第一步,就是用于Filecoin 的扩展。但是其设计可以应用于其他区块链。按照其宣传语所讲:IPC是区块链可扩展性的下一个领域,解锁了无与伦比的容量并且使得新的应用成为可能。
为什么Filecoin 需要 IPC?
许多区块链网络,要求所有验证者处理所有交易。这导致网络出现了严重瓶颈,使得通过横向扩展来增加网络性能变得困难。对于Filecoin而言,尤其如此,因为Filecoin本身就需要处理大量的关于数据相关的证明消息,包括复制证明和时空证明,这就使得Filecoin的主网所能支持的应用就可能更加有限。
除此之外,不同的应用具有不同的性能和安全需求,这使得单个共识层难以适应任何类型的Web3应用。
星际共识(IPC)就是要建立一种框架,通过部署子网来启用Filecoin的按需、横向可扩展性,这些子网生成自己的状态,可以并行验证消息,并与任何网络层次结构以及Filecoin根网络无缝交互。子网可以运行不同的共识算法,以适应应用需求。
IPC如何运作?
这里只能简单地讲一下大致原理。需要了解详细设计的,建议直接看白皮书(https://research.protocol.ai/publications/hierarchical-consensus-a-horizontal-scaling-framework-for-blockchains/delarocha2022.pdf),或者阅读源码。
这是 IPC(白皮书叫HC)的一个大致的子网示意图。从这个图里可以看到子网如何与其上级网络进行链接。
子网的安全保障通过一些checkpoint(检查点)来进行。也就是说子网的状态更新可以通过检查点汇报至上一级网络,通过上一级网络的验证来保证子网交易的安全。
IPC如何在Filecoin网络中实现?
与其他网络的分片不同,Filecoin实现 IPC 的方式比较简单,就是直接通过合约来实现。也就是说,完全不需要在Filecoin底层协议上进行支持,直接在用户层实现IPC需要的合约即可以实现子网的功能。
其中一个重要的合约称为 Subnet Coordinator Actor (SCA,即子网协调合约),通过这个合约,一个网络可以协调其子网(多个)。子网需要部署 Subnet Actor(子网合约)。通过这两个合约,一个网络和它的子网就可以建立其联系,可以进行通信、验证和分流计算了。
由于子网和父网只是状态的交换,有时候也有消息的互通,但子网和其父网可以分别跑不同的链,可以有不同的区块时间和采用不同的共识机制。这样一来,就给子网提供了很大的灵活性。
IPC能有哪些应用场景?
子网最重要的当然就是提升整个网络的 TPS,因为计算可以放到子网上了,可以大大减轻主网的负荷。尤其是把零知识证明用于子网,那么,会大大减轻主网的效率。
除此之外,还有一下方面,子网可以提供与现有扩容方案不一样的场景应用:
计算:随时可以生成临时子网以运行分布式计算任务。
协调:根据需要可以组装成较小的子网进行去中心化编排。通过高吞吐量和低费用来协调资源。
本地化:利用地理位置优势以提高性能。这在Filecoin中实现 Computer Over data,在地理上受限制的环境中以极低的延迟计算尤其有用。
分区容错:可以在移动设置或连接有限的环境中部署区块链底层技术。
IPC什么时候能用?
IPC相关合约的开发去年就开始了,同时一些测试子网的基础设施建设也已经就绪。在今年的香港 Web3 嘉年华上,Lotus团队的Jennifer提到,IPC将在今年4~5月份上测试网络进行测试。预计完成测试走向成熟需要数月时间,比较理想的情况是在第三季度可能能够上主网。
另外一个考量是,目前Filecoin的虚拟机是FEVM,原生的FVM的支持可能要到三季度末或第四季度,从效率出发,IPC当然希望部署在原生的FVM之上。但这个实际上并不冲突。前面提到了,IPC的上线实际上就是合约部署。可以在FEVM上部署IPC相关的合约,让一些人先试起来。等FVM上线之后,再部署新的合约也没有问题。而且这样做的好处是,可以有不同的版本迭代,直接在主网上进行先行试验。
当然,具体的时间安排,还要看共识实验室团队的计划。